' {$STAMP BS2}
 'Maxi2tst.BS2 - Maxi Dual H-Bridge Cct Demo Program for BASIC Stamp 2
 'Demonstrate control of two DC motors via a Stamp 2 with variable speed direction
 '
 'Duuude its the Sequence:
 'Motor A - Forward slow to full speed, pause, decrease to stop, pause
 'Motor A - Reverse slow to full speed, pause, decrease to stop, pause
 'Motor B - Forward slow to full speed, pause, decrease to stop, pause
 'Motor B - Reverse slow to full speed, pause, decrease to stop, pause

 OUTPUT 0                      'motor B, pin 1
 OUTPUT 1                      'motor A, pin 1
 OUTPUT 2                      'motor A, pin 2
 OUTPUT 3                      'motor B, pin 2
 Rate   VAR  Word              'rate for Motor (0 to 255)
 Motor   VAR  Byte              'Motor A = 1, Motor B = 3
 i      VAR  Word              'counter

 main:                         'begin main program loop
        Motor = 1                      'start with Motor A
        LOW 0  'motor B, pin 1                 'startup setting - all motors off
        LOW 1  'motor A, pin 1
        LOW 2  'motor A, pin 2
        LOW 3  'motor B, pin 2

submain:
        FOR Rate = 0 TO 4950 STEP 50           'motor forward ramp up
               PULSOUT Motor,Rate              'wiggle pin 1 or 3
               PAUSE (5001-Rate)/100
        NEXT                                   'Rate

Rate = 5000
       FOR i = 0 TO 4950 STEP 50               'motor hold forward at max
              PULSOUT Motor,Rate               'wiggle pin 1 or 3
              PAUSE (5001-Rate)/100
       NEXT                                    'i

       FOR Rate = 5000 TO 50 STEP 50           'motor forward ramp down
              PULSOUT Motor,Rate               'wiggle pin 1 or 3
              PAUSE (5001-Rate)/100
       NEXT                                    'Rate

PAUSE 500                            'pause for stopped

'reverse motor direction
       TOGGLE 0      'motor B, pin 1
       TOGGLE 1      'motor A, pin 1
       TOGGLE 2      'motor A, pin 2
       TOGGLE 3      'motor B, pin 2

       FOR Rate = 0 TO 4950 STEP 50             'motor reverse ramp up
              PULSOUT Motor,Rate                'wigle pin 1 or 3
              PAUSE (5001-Rate)/100

       NEXT                                     'Rate

Rate = 5000                          'motor hold reverse at max
       FOR i = 0 TO 4950 STEP 50
              PULSOUT Motor,Rate                 'wiggle pin 1 or 3
              PAUSE (5001-Rate)/100
       NEXT                                      'i

       FOR Rate = 5000 TO 50 STEP 50             'motor reverse ramp down
              PULSOUT motor,rate                 'wiggle pin 1 or 3
              PAUSE (5001-Rate)/100
       NEXT                                      'Rate

PAUSE 500                     'motor hold at stop

IF motor = 3 THEN main               'if Motor B then go to Motor A
       Motor = 3                     'otherwise switch to Motor B

GOTO submain                  'repeat cycle for Motor B

'end










 